﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HotelManagement._04.OBJECT;
using HotelManagement._02.BUS;
using HotelManagement;

namespace HotelManagement._01.FORM
{
    public partial class F24_CheckInInfo : Form
    {
        string m_RoomID;
        CheckInInfo m_CheckInInfo;
        CheckInInfoBUS m_CheckInInfoBUS;
        public F24_CheckInInfo()
        {
            InitializeComponent();
            Init();
            LoadDataToGrid();
            if (AssetsGS.instance.RoleUser == "User")
            {
                m_btn_Delete.Enabled = false;
            }
        }

        private void Init()
        {
            m_CheckInInfo = new CheckInInfo();
            m_CheckInInfoBUS = new CheckInInfoBUS();
        }
        private void LoadDataToGrid()
        {
            m_dgv_CheckIn.DataSource = m_CheckInInfoBUS.ViewCheckIn();
            m_cbo_RoomID.DataSource = m_CheckInInfoBUS.SelectRoomID();
            m_cbo_RoomID.DisplayMember = "RoomID";
            m_cbo_RoomID.ValueMember = "RoomID";
        }

        private void m_dgv_CheckIn_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                m_CheckInInfo.CheckInID = int.Parse(m_dgv_CheckIn.Rows[m_dgv_CheckIn.CurrentCell.RowIndex].Cells["CheckInID"].Value.ToString());
                if (m_dgv_CheckIn.Rows[m_dgv_CheckIn.CurrentCell.RowIndex].Cells["CheckInDate"].Value.ToString() != "")
                {
                    m_CheckInInfo.CheckInDate = DateTime.Parse(m_dgv_CheckIn.Rows[m_dgv_CheckIn.CurrentCell.RowIndex].Cells["CheckInDate"].Value.ToString());
                    m_time_CheckInDate.Value = m_CheckInInfo.CheckInDate;
                }
                m_CheckInInfo.CustomerName = m_dgv_CheckIn.Rows[m_dgv_CheckIn.CurrentCell.RowIndex].Cells["CustomerName"].Value.ToString();
                m_CheckInInfo.RoomID = m_dgv_CheckIn.Rows[m_dgv_CheckIn.CurrentCell.RowIndex].Cells["RoomID"].Value.ToString();
                
                
                DataTable v_dt = m_CheckInInfoBUS.ViewInfoCustomer(m_CheckInInfo.CheckInID);
                
                m_txt_CustomerName.Text = v_dt.Rows[0][1].ToString();
                m_txt_IDCardNo.Text = v_dt.Rows[0][8].ToString();
                m_txt_Phone.Text = v_dt.Rows[0][6].ToString();
                m_txt_PassPort.Text = v_dt.Rows[0][9].ToString();
                m_txt_Address.Text = v_dt.Rows[0][5].ToString();

                
                m_cbo_RoomID.Text = m_CheckInInfo.RoomID.ToString();
                m_txt_RentCost.Text = m_dgv_CheckIn.Rows[m_dgv_CheckIn.CurrentCell.RowIndex].Cells["RentCost"].Value.ToString();
                m_txt_Note.Text = m_dgv_CheckIn.Rows[m_dgv_CheckIn.CurrentCell.RowIndex].Cells["Note"].Value.ToString();
                

            }
            catch (Exception ex)
            {

                MessageBox.Show("Bạn chưa chọn loại dịch vụ nào !");
            }
        }

        private void m_cbo_RoomID_SelectedIndexChanged(object sender, EventArgs e)
        {
            m_RoomID = m_cbo_RoomID.SelectedValue.ToString().Trim();
        }

        private void m_btn_Update_Click(object sender, EventArgs e)
        {
            if (m_CheckInInfo.CheckInID == 0)
            {
                MessageBox.Show("Bạn chưa chọn Check In nào !");
            }
            else if (m_txt_RentCost.Text.ToString() == "")
            {
                MessageBox.Show("Bạn chưa điền đủ thông tin !");
            }
            else
            {
                DialogResult OK;
                OK = MessageBox.Show("Bạn muốn thay đổi thông tin nhận phòng đã chọn ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (OK == DialogResult.Yes)
                {
                    m_CheckInInfo.CheckInDate = DateTime.Parse(m_time_CheckInDate.Text.ToString());
                    m_CheckInInfo.RoomID = m_RoomID;
                    m_CheckInInfo.RentCost = int.Parse(m_txt_RentCost.Text.ToString());
                    m_CheckInInfo.UserID = 1;
                    //m_CheckIn.UserID = AssetsGS.instance.UserId;

                    if (m_CheckInInfoBUS.UpdateCheckIn(m_CheckInInfo))
                    {
                        MessageBox.Show("Thành công !");
                        LoadDataToGrid();
                    }
                    else MessageBox.Show("Có lỗi! Không cập nhật được.");
                }
            }

            
        }

        private void m_btn_Xóa_Click(object sender, EventArgs e)
        {
            if (m_CheckInInfo.CheckInID == 0)
            {
                MessageBox.Show("Bạn chưa chọn Check In nào !");
            }
            else
            {
                DialogResult OK;
                OK = MessageBox.Show("Bạn muốn xóa Check In đã chọn ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (OK == DialogResult.Yes)
                {
                    //m_CheckIn.UserID = AssetsGS.instance.UserId;

                    if (m_CheckInInfoBUS.DeleteCheckIn(m_CheckInInfo))
                    {
                        MessageBox.Show("Thành công !");
                        LoadDataToGrid();
                    }
                    else MessageBox.Show("Có lỗi! Không cập nhật được.");
                }
            }

            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
